package com.zhz.common.tool.mybatisplus.base.core.contract;

import java.io.Serializable;
import java.util.Collections;
import java.util.List;


/**
 * 分页
 *      {
 *          “success”：“成功”，
 *          “code”：10000
 *          “message”：“ok”，
 *          ”data“：{
 *              total：//总条数
 *              rows ：//数据列表
 *          }
 *      }
 */
public class Page<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    // 总记录数
    private Long total;
    // 列表数据
    private List<T> rows = Collections.emptyList();

    public Page(List<T> rows, long total) {
        this.rows = rows;
        this.total = total;
    }

    public boolean isEmpty() {
        return this.rows == null || this.rows.isEmpty();
    }

    public boolean isNotEmpty() {
        return !this.isEmpty();
    }

    public static <T> Page<T> succeed(List<T> rows, long total) {
        return new Page(rows, total);
    }

    public static <T> Page<T> empty() {
        return new Page(Collections.emptyList(), 0);
    }

    public Long getTotal() {
        return this.total;
    }

    public List<T> getList() {
        return this.rows;
    }
}